package com.xinruke.hostels.dailymanage.interfaces.api;

import com.xinruke.hostels.common.po.YwZhengjianxinxi;
import com.xinruke.hostels.common.vo.ResultVO;
import com.xinruke.hostels.common.vo.query.RowsDataVO;
import com.xinruke.hostels.dailymanage.interfaces.dto.*;
import com.xinruke.hostels.dailymanage.interfaces.dto.inhotel.InHotelDetailQueryDTO;
import com.xinruke.hostels.dailymanage.interfaces.dto.inhotel.InHotelDetailQueryResultDTO;
import com.xinruke.hostels.dailymanage.interfaces.dto.inhotel.InHotelQueryByHotelIdDTO;
import com.xinruke.hostels.dailymanage.interfaces.dto.inhotel.InHotelQueryResultDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;

/**
 * @ClassName DailyManageApi
 * @date：2019/6/21
 * @author GuoZheng
 * @version: 1.0
 * @description：评论管理api
 */
@FeignClient(value = "daily-manage-service", fallbackFactory = DailyManageFallback.class)
public interface DailyManageApi {
    @GetMapping("/comment/average/{id}")
    CommentAverageResultDto average(@PathVariable("id") Integer id);

    @PostMapping("/comment/submit")
    ResultVO<String> submit(@Valid @RequestBody CommentSubmitInfoDto params);

    @PostMapping("/comment/detail")
    ResultVO<CommentDetailQueryResultDTO> detail(@Valid @RequestBody CommentDetailQueryDTO params);

    @PostMapping("/comment/list")
    ResultVO<RowsDataVO<CommentInfoQueryResultDTO>> list(@RequestBody @Valid CommentInfoQueryDto commentInfoQueryDto);

    @PostMapping("/room-status/room/remain/count")
    ResultVO<Integer>  queryRemainRoomCount(@RequestBody @Valid RemainCountQueryDto params);
    @PostMapping("/room-status/room/reservation")
    ResultVO<RoomReservationResultDTO>  roomReservation(@RequestBody @Valid RoomReservationQueryDTO params);

    @PostMapping(value = "/reservation/add")
     ResultVO saveGuest(@RequestBody @Valid YwZhengjianxinxi ywZhengjianxinxi);

    @PostMapping("/commentInnerApi/list")
    ResultVO<RowsDataVO<CommentInfoQueryResultDTO>> allComment(@RequestBody @Valid CommentAllInfoQueryDTO commentAllInfoQueryDTO);

    @PostMapping("/commentInnerApi/detail")
    ResultVO<CommentDetailQueryResultDTO> centralDetail(@Valid @RequestBody CommentDetailQueryDTO params);

    @PostMapping("/commentInnerApi/del")
    ResultVO<String> del(@Valid @RequestBody CommentDelQueryDTO params);

    @PostMapping("/commentInnerApi/audit")
    ResultVO<String> audit(@Valid @RequestBody CommentAuditQueryDTO params);


}
